<@pp.dropOutputFile/>
<#-- iterate table list-->
<#list doc.tables as table>

<#-- generate package name -->
<#assign package = doc.groupid?replace(".", "/")> 
<#assign package = package + "/" + doc.artifactid?replace(".", "/")>
<#assign package = package + "/" + table.moduleid?replace(".", "/")>
<#assign fileName = table.name?cap_first>
<@pp.changeOutputFile name="/main/java/" + package + "/service/" + fileName + "Service.java"/>
/*
 * File name : ${fileName}Service.java ${doc.date}
 * Copyright ${doc.copyright}. All rights reserved.
 */
package ${package?replace("/", ".")}.service;

import java.util.List;
import java.util.Date;
import blackstone.comm.Outcome;
import ${package?replace("/", ".")}.domain.${fileName};

/**
 * Interface ${fileName}Service
 * ${fileName} service interface.
 * @author ${doc.author}
 * @version ${doc.version}, ${doc.date}
 */
public interface ${fileName}Service {

	///////////////////// Create
	public Outcome create(${fileName} newValue);
	public Outcome createBatch(List<${fileName}> items);	
	
	///////////////////// Retrieve
	public Outcome get(String id);
	public Outcome size(String id, Date start, Date end);
	public Outcome getAll();
	public Outcome getPage(Integer page, Integer rows, String id, Date start, Date end);
	public Outcome getItems(List<String> items);

	///////////////////// Update
	public Outcome update(${fileName} newValue);
	
	///////////////////// Delete
	public Outcome delete(String id);
	public Outcome deleteItems(List<String> ids);
	public Outcome deleteAll();
}
</#list>